package com.seaengine.util
{
	
	/**
	 * 拆分数组
	 * @author 周玉龙
	 * 二〇一一年八月二十八日 15:30:22
	 */	
	public class SplitArray
	{
	
		//--------------------------------------------------------------------------
		//
		//  variable
		//
		//--------------------------------------------------------------------------
		private static var temp:Array;
		
		public function SplitArray()
		{
			
		}
	

		//--------------------------------------------------------------------------
		//
		//  static
		//
		//--------------------------------------------------------------------------
		/**
		 * 拆分数组 从开始下标和结束下标数据
		 * @param target 目标数组
		 * @param begin  开始下标
		 * @param end	 结束下标
		 */		
		public static function split(target:Array,begin:uint,end:uint):Array
		{
			if(temp == null)
			{
				temp = new Array();
			}
			temp = target.slice(begin,end);
			return temp;
		}
		
		/**
		 * 从当前页获得数组开始和结束下标
		 * @param target    目标
		 * @param current   当前页
		 * @param viewCount 显示数量
		 */		
		public static function getBegin_End(target:Array,current:uint,viewCount:uint):Object
		{
			var obj:Object = new Object();
			var startIndex:uint//起始下标
			var endIndex:uint//结束下标
			startIndex = viewCount * (current - 1);
			endIndex = startIndex + viewCount;
			obj.begin = startIndex;
			obj.end = endIndex;
			return obj;
		}
		
		/**
		 * 给定一个数组和当前可以显示几行数据 得出能显示几页数据（此方法常用于翻页组件里）
		 */		
		public static function total(target:Array,count:uint):uint
		{
			var total:uint;
			total =	Math.ceil(target.length / count);
			return total;
		}
	}
}